home *** CD-ROM | disk | FTP | other *** search
/ PC World Komputer 2010 April / PCWorld0410.iso / hity wydania / Ubuntu 9.10 PL / karmelkowy-koliberek-desktop-9.10-i386-PL.iso / casper / initrd.lz / initrd / scripts / casper-bottom / 30accessibility < prev    next >
Encoding:
Text File  |  2009-10-28  |  9.5 KB  |  174 lines

  1. #!/bin/sh
  2. # If you change this, please also change the copy in ubiquity-hooks/30accessibility.
  3.  
  4. PREREQ=""
  5. DESCRIPTION="Configuring accessibility options..."
  6.  
  7. . /scripts/casper-functions
  8.  
  9. prereqs()
  10. {
  11.        echo "$PREREQ"
  12. }
  13.  
  14. case $1 in
  15. # get pre-requisites
  16. prereqs)
  17.        prereqs
  18.        exit 0
  19.        ;;
  20. esac
  21.  
  22. log_begin_msg "$DESCRIPTION"
  23.  
  24. gconf_version=$(chroot /root /usr/bin/dpkg-query -W --showformat='${Version}' gconf2 2>/dev/null) || gconf_version=""
  25.  
  26. gct() {
  27.     if [ "$gconf_version" ]; then
  28.         chroot /root sudo -u "$USERNAME" gconftool-2 "$@"
  29.     fi
  30. }
  31.  
  32. kderc_addtoprefixes() {
  33.     if [ -e "/root/etc/kde4rc" ]; then
  34.         sed -i "s|\\(prefixes=/usr/share/kubuntu-default-settings/kde-profile/default/\\)|\\1,$1|" /root/etc/kde4rc
  35.     fi
  36. }
  37.  
  38. # Code to remove an applet from the default panel setup
  39. # This is rather hacky, but I can't think of a one or two line regular
  40. # expression to do this any more efficiently. Patches welcome.
  41. # In addition, setting these via gconf also doesn't work for some reason.
  42. remove_applet()
  43. {
  44.     local line_no prior_line next_line
  45.  
  46.     line_no=$(grep -n "<string>$1</string>" /root/usr/share/gconf/defaults/05_panel-default-setup.entries | cut -f 1 -d :)
  47.     [ "$line_no" ] || return
  48.     prior_line=$((line_no-1))
  49.     next_line=$((line_no+1))
  50.     sed -i -n "${prior_line},${next_line}!p" /root/usr/share/gconf/defaults/05_panel-default-setup.entries
  51.     chroot /root update-gconf-defaults
  52. }
  53.  
  54. for x in $(cat /proc/cmdline); do
  55.                 case $x in
  56.                         # Lesser Visual Impairment
  57.                         access=v1)
  58.                         gct -s -t string /desktop/gnome/interface/gtk_theme HighContrastLargePrint
  59.                         gct -s -t string /desktop/gnome/interface/icon_theme HighContrast
  60.                         gct -s -t string /desktop/gnome/interface/monospace_font_name "monospace 18"
  61.                         gct -s -t string /desktop/gnome/interface/font_name "sans 18"
  62.                         gct -s -t string /apps/metacity/general/theme Atlanta
  63.                         gct -s -t string /desktop/gnome/background/picture_filename ""
  64.                         gct -s -t string /desktop/gnome/background/picture_options none
  65.                         gct -s -t string /desktop/gnome/background/primary_color \#666666
  66.                         gct -s -t string /desktop/gnome/background/secondary_color \#7F7F7F
  67.                         gct -s -t string /desktop/gnome/background/color_shading_type solid
  68.                         gct -s -t int /desktop/gnome/peripherals/mouse/cursor_size 48
  69.                         gct -s -t string /desktop/gnome/peripherals/mouse/cursor_theme whiteglass
  70.  
  71.                         kderc_addtoprefixes /usr/share/kubuntu-default-settings/kde-profile/lesser-visual-impairment/
  72.                         if [ -d /root/usr/share/xubuntu-default-settings/accessibility ]; then
  73.                             cp -a /root/usr/share/xubuntu-default-settings/accessibility/* /root/etc/xdg/
  74.                         fi
  75.                         ;;
  76.                         # Moderate Visual Impairment
  77.                         access=v2)
  78.                         gct -s -t bool /desktop/gnome/interface/accessibility true
  79.                         gct -s -t bool /desktop/gnome/applications/at/visual/startup true
  80.                         gct -s -t string /desktop/gnome/applications/at/visual/exec orca
  81.             if [ -x /root/usr/bin/orca ]; then
  82.                 mkdir -p /root/home/$USERNAME/.orca
  83.                 echo "import orca.settings" >> /root/home/$USERNAME/.orca/user-settings.py
  84.                 echo "orca.settings.enableSpeech = False" >> /root/home/$USERNAME/.orca/user-settings.py
  85.                 echo "orca.settings.enableMagnifier = True" >> /root/home/$USERNAME/.orca/user-settings.py
  86.                 chroot /root chown -R $USERNAME.$USERNAME /home/$USERNAME/.orca
  87.             fi
  88.                         gct -s -t bool /apps/gksu/disable-grab true
  89.                         gct -s -t string /desktop/gnome/applications/window_manager/default /usr/bin/metacity
  90.                         sed -i -e 's/# Host alias specification/Defaults\tenv_keep = "ORBIT_SOCKETDIR XDG_SESSION_COOKIE GTK_MODULES"\n\n# Host alias specification/g' /root/etc/sudoers
  91.                         kderc_addtoprefixes /usr/share/kubuntu-default-settings/kde-profile/lesser-visual-impairment/,/usr/share/kubuntu-default-settings/kde-profile/moderate-visual-impairment/
  92.                         ;;
  93.                         # Blindness
  94.                         access=v3)
  95.                         gct -s -t bool /desktop/gnome/interface/accessibility true
  96.                         gct -s -t bool /apps/gksu/disable-grab true
  97.                         gct -s -t string /desktop/gnome/applications/window_manager/default /usr/bin/metacity
  98.                         gct -s -t bool /desktop/gnome/applications/at/visual/startup true
  99.                         gct -s -t string /desktop/gnome/applications/at/visual/exec orca
  100.                         remove_applet fast_user_switch
  101.             if [ -x /root/usr/bin/pulse-session ]; then
  102.                 mkdir -p /root/var/lib/pulseaudio
  103.                 touch /root/var/lib/pulseaudio/pulse_a11y_nostart
  104.                 chroot /root chown root.root /var/lib/pulseaudio/pulse_a11y_nostart
  105.                 mkdir -p /root/home/$USERNAME/.pulse
  106.                 echo "autospawn = no" > /root/home/$USERNAME/.pulse/client.conf
  107.                 chroot /root chown -R $USERNAME.$USERNAME /home/$USERNAME/.pulse
  108.             fi
  109.                         sed -i -e 's/# Host alias specification/Defaults\tenv_keep = "ORBIT_SOCKETDIR XDG_SESSION_COOKIE GTK_MODULES"\n\n# Host alias specification/g' /root/etc/sudoers
  110.             if [ -x /root/usr/bin/orca ]; then
  111.                 mkdir -p /root/home/$USERNAME/.orca
  112.                 chroot /root chown -R $USERNAME.$USERNAME /home/$USERNAME/.orca
  113.             fi
  114.                         ;;
  115.                         # Braille
  116.                         braille=ask)
  117.                         gct -s -t bool /desktop/gnome/interface/accessibility true
  118.                         gct -s -t bool /desktop/gnome/applications/at/visual/startup true
  119.                         gct -s -t string /desktop/gnome/applications/at/visual/exec orca
  120.             if [ -x /root/usr/bin/orca ]; then
  121.                 mkdir -p /root/home/$USERNAME/.orca
  122.                 echo "import orca.settings" >> /root/home/$USERNAME/.orca/user-settings.py
  123.                 echo "orca.settings.enableSpeech = False" >> /root/home/$USERNAME/.orca/user-settings.py
  124.                 echo "orca.settings.enableBraille = True" >> /root/home/$USERNAME/.orca/user-settings.py
  125.                 chroot /root chown -R $USERNAME.$USERNAME /home/$USERNAME/.orca
  126.             fi
  127.                         gct -s -t bool /apps/gksu/disable-grab true
  128.                         gct -s -t string /desktop/gnome/applications/window_manager/default /usr/bin/metacity
  129.                         remove_applet fast_user_switch
  130.                         sed -i -e 's/# Host alias specification/Defaults\tenv_keep = "ORBIT_SOCKETDIR XDG_SESSION_COOKIE GTK_MODULES"\n\n# Host alias specification/g' /root/etc/sudoers
  131.             if [ -x /root/usr/bin/pulse-session ]; then
  132.                 mkdir -p /root/var/lib/pulseaudio
  133.                 touch /root/var/lib/pulseaudio/pulse_a11y_nostart
  134.                 chroot /root chown root.root /var/lib/pulseaudio/pulse_a11y_nostart
  135.                 mkdir -p /root/home/$USERNAME/.pulse
  136.                 echo "autospawn = no" > /root/home/$USERNAME/.pulse/client.conf
  137.                 chroot /root chown -R $USERNAME.$USERNAME /home/$USERNAME/.pulse
  138.             fi
  139.                         ;;
  140.                         # Minor Motor Difficulties
  141.                         access=m1)
  142.                         gct -s -t bool /desktop/gnome/accessibility/keyboard/enable true
  143.                         gct -s -t bool /desktop/gnome/accessibility/keyboard/mousekeys_enable true
  144.                         gct -s -t bool /desktop/gnome/accessibility/keyboard/stickykeys_enable true
  145.                         gct -s -t bool /desktop/gnome/accessibility/keyboard/stickykeys_modifier_beep true
  146.                         gct -s -t bool /desktop/accessibility/gnome/keyboard/stickykeys_two_key_off false
  147.                         gct -s -t bool /desktop/gnome/peripherals/keyboard/repeat true
  148.                         gct -s -t int /desktop/gnome/peripherals/keyboard/delay 700
  149.                         gct -s -t int /desktop/gnome/peripherals/keyboard/rate 10
  150.                         gct -s -t bool /apps/gksu/disable-grab true
  151.                         kderc_addtoprefixes /usr/share/kubuntu-default-settings/kde-profile/minor-motor-difficulties/
  152.                         if [ -e /root/etc/xdg/xfce4/mcs_settings/keyboard.xml ]; then
  153.                             sed -i 's/0/1/' /root/etc/xdg/xfce4/mcs_settings/keyboard.xml
  154.                         fi 
  155.                         ;;
  156.                         # Motor Difficulties - pointing devices
  157.                         access=m2)
  158.                         gct -s -t bool /desktop/gnome/accessibility/keyboard/enable true
  159.             gct -s -t bool /desktop/gnome/interface/accessibility true
  160.                         gct -s -t bool /desktop/gnome/accessibility/keyboard/stickykeys_enable true
  161.                         gct -s -t bool /desktop/gnome/accessibility/keyboard/stickykeys_modifier_beep false
  162.                         gct -s -t bool /desktop/accessibility/gnome/keyboard/stickykeys_two_key_off false
  163.                         gct -s -t bool /desktop/gnome/applications/at/mobility/startup true
  164.                         gct -s -t string /desktop/gnome/applications/at/mobility/exec onboard
  165.  
  166.                         kderc_addtoprefixes /usr/share/kubuntu-default-settings/kde-profile/minor-motor-difficulties/,/usr/share/kubuntu-default-settings/kde-profile/motor-difficulties-pointing-devices/
  167.                         if [ -e /root/etc/xdg/xfce4/mcs_settings/keyboard.xml ]; then
  168.                             sed -i '/Sticky/ s/0/1/' /root/etc/xdg/xfce4/mcs_settings/keyboard.xml
  169.                         fi 
  170.                         ;;
  171.         esac
  172. done
  173. log_end_msg
  174.